package com.example.lab4.Controller;

import com.example.lab4.Entity.*;
import com.example.lab4.Mapper.*;
import com.example.lab4.common.Result;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.*;

import java.text.SimpleDateFormat;
import java.util.*;

@Controller
public class 车次Controller {
    @Autowired
    private 车次Dao 车次dao;

    @Autowired
    private 车座Dao 车座dao;

    @Autowired
    private 车票Dao 车票dao;


    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");

    @RequestMapping("/Order")
    public String Goto车次(Model m){
        List<车次> 车次s = 车次dao.findAll();
        m.addAttribute("车次",车次s);
        return "Order";
    }

    @GetMapping("/addOrder")
    public String jump添加(){
        return "addOrder";
    }

    @SneakyThrows
    @PostMapping("/edit")
    @ResponseBody
    public Result edit(@RequestBody Replace2 replace2){
        Edit车次 一个车次 = new Edit车次();
        一个车次.set列车号1(replace2.get列车号1());
        一个车次.set出发时间1((Date) sdf.parse(replace2.get出发时间1()));
        一个车次.set到达时间1((Date) sdf.parse(replace2.get到达时间1()));
        一个车次.set起点站1(replace2.get起点站1());
        一个车次.set终点站1(replace2.get终点站1());
        一个车次.set列车号2(replace2.get列车号2());
        一个车次.set出发时间2((Date) sdf2.parse(replace2.get出发时间2()));
        一个车次.set到达时间2((Date) sdf2.parse(replace2.get到达时间2()));
        一个车次.set起点站2(replace2.get起点站2());
        一个车次.set终点站2(replace2.get终点站2());
        车次dao.update(一个车次);
        return Result.ok();
    }

    @SneakyThrows
    @PostMapping("/delete")
    @ResponseBody
    public Result delete(@RequestBody Replace replace){
        车次 一个车次 = new 车次();
        一个车次.set列车号(replace.get列车号());
        一个车次.set出发时间((Date) sdf.parse(replace.get出发时间()));
        一个车次.set到达时间((Date) sdf.parse(replace.get到达时间()));
        一个车次.set起点站(replace.get起点站());
        一个车次.set终点站(replace.get终点站());
        车次dao.delete(一个车次);
        return Result.ok();
    }

    @PostMapping("/add")
    @ResponseBody
    public Result add(@RequestBody 车次 一个车次){
        String 出售情况 = "" + "未售";
        String 类型一 = "" + "二等";
        String 类型二 = "" + "一等";
        String 类型三 = "" + "商务";
        //车次 一个车次 = new 车次() = JSONObject.parseObject(orders, 车次.class);
        //新增车次
        一个车次.set出发时间(new Date(一个车次.get出发时间().getTime() - 8*60*60*1000));
        一个车次.set到达时间(new Date(一个车次.get到达时间().getTime() - 8*60*60*1000));
        车次dao.insert(一个车次);
        //自动生成车座
        车座 一个车座 = new 车座();
        for (int i = 1; i < 4; i++) {
            一个车座.set列车号(一个车次.get列车号());
            一个车座.set出发时间(一个车次.get出发时间());
            一个车座.set出售情况(出售情况);
            一个车座.set座位号("00" + i);
            一个车座.set价格((double) (i * 300));
            if(i == 1) 一个车座.set座位类型(类型一);
            else if(i == 2) 一个车座.set座位类型(类型二);
            else 一个车座.set座位类型(类型三);
            车座dao.insert(一个车座);
            //自动生成车票
            车票 一个车票 = new 车票();
            一个车票.set车票号("00" + (车票dao.give车票号() + 1));
            一个车票.set起点站(一个车次.get起点站());
            一个车票.set终点站(一个车次.get终点站());
            一个车票.set出发时间(一个车次.get出发时间());
            一个车票.set到达时间(一个车次.get到达时间());
            一个车票.set列车号(一个车次.get列车号());
            一个车票.set座位号(一个车座.get座位号());
            一个车票.set座位类型(一个车座.get座位类型());
            一个车票.set价格(一个车座.get价格());
            车票dao.insert(一个车票);
        }
        return Result.ok();
    }
}
